//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------

function write(v) { WScript.Echo(v + ""); }

function foo() {}

write(undefined + undefined);
write(undefined + null);
write(undefined + true);
write(undefined + false);
write(undefined + Boolean(true));
write(undefined + Boolean(false));
write(undefined + new Boolean(true));
write(undefined + new Boolean(false));
write(undefined + NaN);
write(undefined + +0);
write(undefined + -0);
write(undefined + 0);
write(undefined + 0.0);
write(undefined + -0.0);
write(undefined + +0.0);
write(undefined + 1);
write(undefined + 10);
write(undefined + 10.0);
write(undefined + 10.1);
write(undefined + -1);
write(undefined + -10);
write(undefined + -10.0);
write(undefined + -10.1);
write(undefined + Number.MAX_VALUE);
write(undefined + Number.MIN_VALUE);
write(undefined + Number.NaN);
write(undefined + Number.POSITIVE_INFINITY);
write(undefined + Number.NEGATIVE_INFINITY);
write(undefined + new Number(NaN));
write(undefined + new Number(+0));
write(undefined + new Number(-0));
write(undefined + new Number(0));
write(undefined + new Number(0.0));
write(undefined + new Number(-0.0));
write(undefined + new Number(+0.0));
write(undefined + new Number(1));
write(undefined + new Number(10));
write(undefined + new Number(10.0));
write(undefined + new Number(10.1));
write(undefined + new Number(-1));
write(undefined + new Number(-10));
write(undefined + new Number(-10.0));
write(undefined + new Number(-10.1));
write(undefined + new Number(Number.MAX_VALUE));
write(undefined + new Number(Number.MIN_VALUE));
write(undefined + new Number(Number.NaN));
write(undefined + new Number(Number.POSITIVE_INFINITY));
write(undefined + new Number(Number.NEGATIVE_INFINITY));
write(undefined + '');
write(undefined + 0xa);
write(undefined + 04);
write(undefined + 'hello');
write(undefined + 'hel' + 'lo');
write(undefined + String(''));
write(undefined + String('hello'));
write(undefined + String('h' + 'ello'));
write(undefined + new String(''));
write(undefined + new String('hello'));
write(undefined + new String('he' + 'llo'));
write(undefined + new Object());
write(undefined + new Object());
write(undefined + [1, 2, 3]);
write(undefined + [1 ,2 , 3]);
write(undefined + new Array(3));
write(undefined + Array(3));
write(undefined + new Array(1 ,2 ,3));
write(undefined + Array(1));
write(undefined + foo);
write(null + undefined);
write(null + null);
write(null + true);
write(null + false);
write(null + Boolean(true));
write(null + Boolean(false));
write(null + new Boolean(true));
write(null + new Boolean(false));
write(null + NaN);
write(null + +0);
write(null + -0);
write(null + 0);
write(null + 0.0);
write(null + -0.0);
write(null + +0.0);
write(null + 1);
write(null + 10);
write(null + 10.0);
write(null + 10.1);
write(null + -1);
write(null + -10);
write(null + -10.0);
write(null + -10.1);
write(null + Number.MAX_VALUE);
write(null + Number.MIN_VALUE);
write(null + Number.NaN);
write(null + Number.POSITIVE_INFINITY);
write(null + Number.NEGATIVE_INFINITY);
write(null + new Number(NaN));
write(null + new Number(+0));
write(null + new Number(-0));
write(null + new Number(0));
write(null + new Number(0.0));
write(null + new Number(-0.0));
write(null + new Number(+0.0));
write(null + new Number(1));
write(null + new Number(10));
write(null + new Number(10.0));
write(null + new Number(10.1));
write(null + new Number(-1));
write(null + new Number(-10));
write(null + new Number(-10.0));
write(null + new Number(-10.1));
write(null + new Number(Number.MAX_VALUE));
write(null + new Number(Number.MIN_VALUE));
write(null + new Number(Number.NaN));
write(null + new Number(Number.POSITIVE_INFINITY));
write(null + new Number(Number.NEGATIVE_INFINITY));
write(null + '');
write(null + 0xa);
write(null + 04);
write(null + 'hello');
write(null + 'hel' + 'lo');
write(null + String(''));
write(null + String('hello'));
write(null + String('h' + 'ello'));
write(null + new String(''));
write(null + new String('hello'));
write(null + new String('he' + 'llo'));
write(null + new Object());
write(null + new Object());
write(null + [1, 2, 3]);
write(null + [1 ,2 , 3]);
write(null + new Array(3));
write(null + Array(3));
write(null + new Array(1 ,2 ,3));
write(null + Array(1));
write(null + foo);
write(true + undefined);
write(true + null);
write(true + true);
write(true + false);
write(true + Boolean(true));
write(true + Boolean(false));
write(true + new Boolean(true));
write(true + new Boolean(false));
write(true + NaN);
write(true + +0);
write(true + -0);
write(true + 0);
write(true + 0.0);
write(true + -0.0);
write(true + +0.0);
write(true + 1);
write(true + 10);
write(true + 10.0);
write(true + 10.1);
write(true + -1);
write(true + -10);
write(true + -10.0);
write(true + -10.1);
write(true + Number.MAX_VALUE);
write(true + Number.MIN_VALUE);
write(true + Number.NaN);
write(true + Number.POSITIVE_INFINITY);
write(true + Number.NEGATIVE_INFINITY);
write(true + new Number(NaN));
write(true + new Number(+0));
write(true + new Number(-0));
write(true + new Number(0));
write(true + new Number(0.0));
write(true + new Number(-0.0));
write(true + new Number(+0.0));
write(true + new Number(1));
write(true + new Number(10));
write(true + new Number(10.0));
write(true + new Number(10.1));
write(true + new Number(-1));
write(true + new Number(-10));
write(true + new Number(-10.0));
write(true + new Number(-10.1));
write(true + new Number(Number.MAX_VALUE));
write(true + new Number(Number.MIN_VALUE));
write(true + new Number(Number.NaN));
write(true + new Number(Number.POSITIVE_INFINITY));
write(true + new Number(Number.NEGATIVE_INFINITY));
write(true + '');
write(true + 0xa);
write(true + 04);
write(true + 'hello');
write(true + 'hel' + 'lo');
write(true + String(''));
write(true + String('hello'));
write(true + String('h' + 'ello'));
write(true + new String(''));
write(true + new String('hello'));
write(true + new String('he' + 'llo'));
write(true + new Object());
write(true + new Object());
write(true + [1, 2, 3]);
write(true + [1 ,2 , 3]);
write(true + new Array(3));
write(true + Array(3));
write(true + new Array(1 ,2 ,3));
write(true + Array(1));
write(true + foo);
write(false + undefined);
write(false + null);
write(false + true);
write(false + false);
write(false + Boolean(true));
write(false + Boolean(false));
write(false + new Boolean(true));
write(false + new Boolean(false));
write(false + NaN);
write(false + +0);
write(false + -0);
write(false + 0);
write(false + 0.0);
write(false + -0.0);
write(false + +0.0);
write(false + 1);
write(false + 10);
write(false + 10.0);
write(false + 10.1);
write(false + -1);
write(false + -10);
write(false + -10.0);
write(false + -10.1);
write(false + Number.MAX_VALUE);
write(false + Number.MIN_VALUE);
write(false + Number.NaN);
write(false + Number.POSITIVE_INFINITY);
write(false + Number.NEGATIVE_INFINITY);
write(false + new Number(NaN));
write(false + new Number(+0));
write(false + new Number(-0));
write(false + new Number(0));
write(false + new Number(0.0));
write(false + new Number(-0.0));
write(false + new Number(+0.0));
write(false + new Number(1));
write(false + new Number(10));
write(false + new Number(10.0));
write(false + new Number(10.1));
write(false + new Number(-1));
write(false + new Number(-10));
write(false + new Number(-10.0));
write(false + new Number(-10.1));
write(false + new Number(Number.MAX_VALUE));
write(false + new Number(Number.MIN_VALUE));
write(false + new Number(Number.NaN));
write(false + new Number(Number.POSITIVE_INFINITY));
write(false + new Number(Number.NEGATIVE_INFINITY));
write(false + '');
write(false + 0xa);
write(false + 04);
write(false + 'hello');
write(false + 'hel' + 'lo');
write(false + String(''));
write(false + String('hello'));
write(false + String('h' + 'ello'));
write(false + new String(''));
write(false + new String('hello'));
write(false + new String('he' + 'llo'));
write(false + new Object());
write(false + new Object());
write(false + [1, 2, 3]);
write(false + [1 ,2 , 3]);
write(false + new Array(3));
write(false + Array(3));
write(false + new Array(1 ,2 ,3));
write(false + Array(1));
write(false + foo);
write(Boolean(true) + undefined);
write(Boolean(true) + null);
write(Boolean(true) + true);
write(Boolean(true) + false);
write(Boolean(true) + Boolean(true));
write(Boolean(true) + Boolean(false));
write(Boolean(true) + new Boolean(true));
write(Boolean(true) + new Boolean(false));
write(Boolean(true) + NaN);
write(Boolean(true) + +0);
write(Boolean(true) + -0);
write(Boolean(true) + 0);
write(Boolean(true) + 0.0);
write(Boolean(true) + -0.0);
write(Boolean(true) + +0.0);
write(Boolean(true) + 1);
write(Boolean(true) + 10);
write(Boolean(true) + 10.0);
write(Boolean(true) + 10.1);
write(Boolean(true) + -1);
write(Boolean(true) + -10);
write(Boolean(true) + -10.0);
write(Boolean(true) + -10.1);
write(Boolean(true) + Number.MAX_VALUE);
write(Boolean(true) + Number.MIN_VALUE);
write(Boolean(true) + Number.NaN);
write(Boolean(true) + Number.POSITIVE_INFINITY);
write(Boolean(true) + Number.NEGATIVE_INFINITY);
write(Boolean(true) + new Number(NaN));
write(Boolean(true) + new Number(+0));
write(Boolean(true) + new Number(-0));
write(Boolean(true) + new Number(0));
write(Boolean(true) + new Number(0.0));
write(Boolean(true) + new Number(-0.0));
write(Boolean(true) + new Number(+0.0));
write(Boolean(true) + new Number(1));
write(Boolean(true) + new Number(10));
write(Boolean(true) + new Number(10.0));
write(Boolean(true) + new Number(10.1));
write(Boolean(true) + new Number(-1));
write(Boolean(true) + new Number(-10));
write(Boolean(true) + new Number(-10.0));
write(Boolean(true) + new Number(-10.1));
write(Boolean(true) + new Number(Number.MAX_VALUE));
write(Boolean(true) + new Number(Number.MIN_VALUE));
write(Boolean(true) + new Number(Number.NaN));
write(Boolean(true) + new Number(Number.POSITIVE_INFINITY));
write(Boolean(true) + new Number(Number.NEGATIVE_INFINITY));
write(Boolean(true) + '');
write(Boolean(true) + 0xa);
write(Boolean(true) + 04);
write(Boolean(true) + 'hello');
write(Boolean(true) + 'hel' + 'lo');
write(Boolean(true) + String(''));
write(Boolean(true) + String('hello'));
write(Boolean(true) + String('h' + 'ello'));
write(Boolean(true) + new String(''));
write(Boolean(true) + new String('hello'));
write(Boolean(true) + new String('he' + 'llo'));
write(Boolean(true) + new Object());
write(Boolean(true) + new Object());
write(Boolean(true) + [1, 2, 3]);
write(Boolean(true) + [1 ,2 , 3]);
write(Boolean(true) + new Array(3));
write(Boolean(true) + Array(3));
write(Boolean(true) + new Array(1 ,2 ,3));
write(Boolean(true) + Array(1));
write(Boolean(true) + foo);
write(Boolean(false) + undefined);
write(Boolean(false) + null);
write(Boolean(false) + true);
write(Boolean(false) + false);
write(Boolean(false) + Boolean(true));
write(Boolean(false) + Boolean(false));
write(Boolean(false) + new Boolean(true));
write(Boolean(false) + new Boolean(false));
write(Boolean(false) + NaN);
write(Boolean(false) + +0);
write(Boolean(false) + -0);
write(Boolean(false) + 0);
write(Boolean(false) + 0.0);
write(Boolean(false) + -0.0);
write(Boolean(false) + +0.0);
write(Boolean(false) + 1);
write(Boolean(false) + 10);
write(Boolean(false) + 10.0);
write(Boolean(false) + 10.1);
write(Boolean(false) + -1);
write(Boolean(false) + -10);
write(Boolean(false) + -10.0);
write(Boolean(false) + -10.1);
write(Boolean(false) + Number.MAX_VALUE);
write(Boolean(false) + Number.MIN_VALUE);
write(Boolean(false) + Number.NaN);
write(Boolean(false) + Number.POSITIVE_INFINITY);
write(Boolean(false) + Number.NEGATIVE_INFINITY);
write(Boolean(false) + new Number(NaN));
write(Boolean(false) + new Number(+0));
write(Boolean(false) + new Number(-0));
write(Boolean(false) + new Number(0));
write(Boolean(false) + new Number(0.0));
write(Boolean(false) + new Number(-0.0));
write(Boolean(false) + new Number(+0.0));
write(Boolean(false) + new Number(1));
write(Boolean(false) + new Number(10));
write(Boolean(false) + new Number(10.0));
write(Boolean(false) + new Number(10.1));
write(Boolean(false) + new Number(-1));
write(Boolean(false) + new Number(-10));
write(Boolean(false) + new Number(-10.0));
write(Boolean(false) + new Number(-10.1));
write(Boolean(false) + new Number(Number.MAX_VALUE));
write(Boolean(false) + new Number(Number.MIN_VALUE));
write(Boolean(false) + new Number(Number.NaN));
write(Boolean(false) + new Number(Number.POSITIVE_INFINITY));
write(Boolean(false) + new Number(Number.NEGATIVE_INFINITY));
write(Boolean(false) + '');
write(Boolean(false) + 0xa);
write(Boolean(false) + 04);
write(Boolean(false) + 'hello');
write(Boolean(false) + 'hel' + 'lo');
write(Boolean(false) + String(''));
write(Boolean(false) + String('hello'));
write(Boolean(false) + String('h' + 'ello'));
write(Boolean(false) + new String(''));
write(Boolean(false) + new String('hello'));
write(Boolean(false) + new String('he' + 'llo'));
write(Boolean(false) + new Object());
write(Boolean(false) + new Object());
write(Boolean(false) + [1, 2, 3]);
write(Boolean(false) + [1 ,2 , 3]);
write(Boolean(false) + new Array(3));
write(Boolean(false) + Array(3));
write(Boolean(false) + new Array(1 ,2 ,3));
write(Boolean(false) + Array(1));
write(Boolean(false) + foo);
write(new Boolean(true) + undefined);
write(new Boolean(true) + null);
write(new Boolean(true) + true);
write(new Boolean(true) + false);
write(new Boolean(true) + Boolean(true));
write(new Boolean(true) + Boolean(false));
write(new Boolean(true) + new Boolean(true));
write(new Boolean(true) + new Boolean(false));
write(new Boolean(true) + NaN);
write(new Boolean(true) + +0);
write(new Boolean(true) + -0);
write(new Boolean(true) + 0);
write(new Boolean(true) + 0.0);
write(new Boolean(true) + -0.0);
write(new Boolean(true) + +0.0);
write(new Boolean(true) + 1);
write(new Boolean(true) + 10);
write(new Boolean(true) + 10.0);
write(new Boolean(true) + 10.1);
write(new Boolean(true) + -1);
write(new Boolean(true) + -10);
write(new Boolean(true) + -10.0);
write(new Boolean(true) + -10.1);
write(new Boolean(true) + Number.MAX_VALUE);
write(new Boolean(true) + Number.MIN_VALUE);
write(new Boolean(true) + Number.NaN);
write(new Boolean(true) + Number.POSITIVE_INFINITY);
write(new Boolean(true) + Number.NEGATIVE_INFINITY);
write(new Boolean(true) + new Number(NaN));
write(new Boolean(true) + new Number(+0));
write(new Boolean(true) + new Number(-0));
write(new Boolean(true) + new Number(0));
write(new Boolean(true) + new Number(0.0));
write(new Boolean(true) + new Number(-0.0));
write(new Boolean(true) + new Number(+0.0));
write(new Boolean(true) + new Number(1));
write(new Boolean(true) + new Number(10));
write(new Boolean(true) + new Number(10.0));
write(new Boolean(true) + new Number(10.1));
write(new Boolean(true) + new Number(-1));
write(new Boolean(true) + new Number(-10));
write(new Boolean(true) + new Number(-10.0));
write(new Boolean(true) + new Number(-10.1));
write(new Boolean(true) + new Number(Number.MAX_VALUE));
write(new Boolean(true) + new Number(Number.MIN_VALUE));
write(new Boolean(true) + new Number(Number.NaN));
write(new Boolean(true) + new Number(Number.POSITIVE_INFINITY));
write(new Boolean(true) + new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(true) + '');
write(new Boolean(true) + 0xa);
write(new Boolean(true) + 04);
write(new Boolean(true) + 'hello');
write(new Boolean(true) + 'hel' + 'lo');
write(new Boolean(true) + String(''));
write(new Boolean(true) + String('hello'));
write(new Boolean(true) + String('h' + 'ello'));
write(new Boolean(true) + new String(''));
write(new Boolean(true) + new String('hello'));
write(new Boolean(true) + new String('he' + 'llo'));
write(new Boolean(true) + new Object());
write(new Boolean(true) + new Object());
write(new Boolean(true) + [1, 2, 3]);
write(new Boolean(true) + [1 ,2 , 3]);
write(new Boolean(true) + new Array(3));
write(new Boolean(true) + Array(3));
write(new Boolean(true) + new Array(1 ,2 ,3));
write(new Boolean(true) + Array(1));
write(new Boolean(true) + foo);
write(new Boolean(false) + undefined);
write(new Boolean(false) + null);
write(new Boolean(false) + true);
write(new Boolean(false) + false);
write(new Boolean(false) + Boolean(true));
write(new Boolean(false) + Boolean(false));
write(new Boolean(false) + new Boolean(true));
write(new Boolean(false) + new Boolean(false));
write(new Boolean(false) + NaN);
write(new Boolean(false) + +0);
write(new Boolean(false) + -0);
write(new Boolean(false) + 0);
write(new Boolean(false) + 0.0);
write(new Boolean(false) + -0.0);
write(new Boolean(false) + +0.0);
write(new Boolean(false) + 1);
write(new Boolean(false) + 10);
write(new Boolean(false) + 10.0);
write(new Boolean(false) + 10.1);
write(new Boolean(false) + -1);
write(new Boolean(false) + -10);
write(new Boolean(false) + -10.0);
write(new Boolean(false) + -10.1);
write(new Boolean(false) + Number.MAX_VALUE);
write(new Boolean(false) + Number.MIN_VALUE);
write(new Boolean(false) + Number.NaN);
write(new Boolean(false) + Number.POSITIVE_INFINITY);
write(new Boolean(false) + Number.NEGATIVE_INFINITY);
write(new Boolean(false) + new Number(NaN));
write(new Boolean(false) + new Number(+0));
write(new Boolean(false) + new Number(-0));
write(new Boolean(false) + new Number(0));
write(new Boolean(false) + new Number(0.0));
write(new Boolean(false) + new Number(-0.0));
write(new Boolean(false) + new Number(+0.0));
write(new Boolean(false) + new Number(1));
write(new Boolean(false) + new Number(10));
write(new Boolean(false) + new Number(10.0));
write(new Boolean(false) + new Number(10.1));
write(new Boolean(false) + new Number(-1));
write(new Boolean(false) + new Number(-10));
write(new Boolean(false) + new Number(-10.0));
write(new Boolean(false) + new Number(-10.1));
write(new Boolean(false) + new Number(Number.MAX_VALUE));
write(new Boolean(false) + new Number(Number.MIN_VALUE));
write(new Boolean(false) + new Number(Number.NaN));
write(new Boolean(false) + new Number(Number.POSITIVE_INFINITY));
write(new Boolean(false) + new Number(Number.NEGATIVE_INFINITY));
write(new Boolean(false) + '');
write(new Boolean(false) + 0xa);
write(new Boolean(false) + 04);
write(new Boolean(false) + 'hello');
write(new Boolean(false) + 'hel' + 'lo');
write(new Boolean(false) + String(''));
write(new Boolean(false) + String('hello'));
write(new Boolean(false) + String('h' + 'ello'));
write(new Boolean(false) + new String(''));
write(new Boolean(false) + new String('hello'));
write(new Boolean(false) + new String('he' + 'llo'));
write(new Boolean(false) + new Object());
write(new Boolean(false) + new Object());
write(new Boolean(false) + [1, 2, 3]);
write(new Boolean(false) + [1 ,2 , 3]);
write(new Boolean(false) + new Array(3));
write(new Boolean(false) + Array(3));
write(new Boolean(false) + new Array(1 ,2 ,3));
write(new Boolean(false) + Array(1));
write(new Boolean(false) + foo);
write(NaN + undefined);
write(NaN + null);
write(NaN + true);
write(NaN + false);
write(NaN + Boolean(true));
write(NaN + Boolean(false));
write(NaN + new Boolean(true));
write(NaN + new Boolean(false));
write(NaN + NaN);
write(NaN + +0);
write(NaN + -0);
write(NaN + 0);
write(NaN + 0.0);
write(NaN + -0.0);
write(NaN + +0.0);
write(NaN + 1);
write(NaN + 10);
write(NaN + 10.0);
write(NaN + 10.1);
write(NaN + -1);
write(NaN + -10);
write(NaN + -10.0);
write(NaN + -10.1);
write(NaN + Number.MAX_VALUE);
write(NaN + Number.MIN_VALUE);
write(NaN + Number.NaN);
write(NaN + Number.POSITIVE_INFINITY);
write(NaN + Number.NEGATIVE_INFINITY);
write(NaN + new Number(NaN));
write(NaN + new Number(+0));
write(NaN + new Number(-0));
write(NaN + new Number(0));
write(NaN + new Number(0.0));
write(NaN + new Number(-0.0));
write(NaN + new Number(+0.0));
write(NaN + new Number(1));
write(NaN + new Number(10));
write(NaN + new Number(10.0));
write(NaN + new Number(10.1));
write(NaN + new Number(-1));
write(NaN + new Number(-10));
write(NaN + new Number(-10.0));
write(NaN + new Number(-10.1));
write(NaN + new Number(Number.MAX_VALUE));
write(NaN + new Number(Number.MIN_VALUE));
write(NaN + new Number(Number.NaN));
write(NaN + new Number(Number.POSITIVE_INFINITY));
write(NaN + new Number(Number.NEGATIVE_INFINITY));
write(NaN + '');
write(NaN + 0xa);
write(NaN + 04);
write(NaN + 'hello');
write(NaN + 'hel' + 'lo');
write(NaN + String(''));
write(NaN + String('hello'));
write(NaN + String('h' + 'ello'));
write(NaN + new String(''));
write(NaN + new String('hello'));
write(NaN + new String('he' + 'llo'));
write(NaN + new Object());
write(NaN + new Object());
write(NaN + [1, 2, 3]);
write(NaN + [1 ,2 , 3]);
write(NaN + new Array(3));
write(NaN + Array(3));
write(NaN + new Array(1 ,2 ,3));
write(NaN + Array(1));
write(NaN + foo);
write(+0 + undefined);
write(+0 + null);
write(+0 + true);
write(+0 + false);
write(+0 + Boolean(true));
write(+0 + Boolean(false));
write(+0 + new Boolean(true));
write(+0 + new Boolean(false));
write(+0 + NaN);
write(+0 + +0);
write(+0 + -0);
write(+0 + 0);
write(+0 + 0.0);
write(+0 + -0.0);
write(+0 + +0.0);
write(+0 + 1);
write(+0 + 10);
write(+0 + 10.0);
write(+0 + 10.1);
write(+0 + -1);
write(+0 + -10);
write(+0 + -10.0);
write(+0 + -10.1);
write(+0 + Number.MAX_VALUE);
write(+0 + Number.MIN_VALUE);
write(+0 + Number.NaN);
write(+0 + Number.POSITIVE_INFINITY);
write(+0 + Number.NEGATIVE_INFINITY);
write(+0 + new Number(NaN));
write(+0 + new Number(+0));
write(+0 + new Number(-0));
write(+0 + new Number(0));
write(+0 + new Number(0.0));
write(+0 + new Number(-0.0));
write(+0 + new Number(+0.0));
write(+0 + new Number(1));
write(+0 + new Number(10));
write(+0 + new Number(10.0));
write(+0 + new Number(10.1));
write(+0 + new Number(-1));
write(+0 + new Number(-10));
write(+0 + new Number(-10.0));
write(+0 + new Number(-10.1));
write(+0 + new Number(Number.MAX_VALUE));
write(+0 + new Number(Number.MIN_VALUE));
write(+0 + new Number(Number.NaN));
write(+0 + new Number(Number.POSITIVE_INFINITY));
write(+0 + new Number(Number.NEGATIVE_INFINITY));
write(+0 + '');
write(+0 + 0xa);
write(+0 + 04);
write(+0 + 'hello');
write(+0 + 'hel' + 'lo');
write(+0 + String(''));
write(+0 + String('hello'));
write(+0 + String('h' + 'ello'));
write(+0 + new String(''));
write(+0 + new String('hello'));
write(+0 + new String('he' + 'llo'));
write(+0 + new Object());
write(+0 + new Object());
write(+0 + [1, 2, 3]);
write(+0 + [1 ,2 , 3]);
write(+0 + new Array(3));
write(+0 + Array(3));
write(+0 + new Array(1 ,2 ,3));
write(+0 + Array(1));
write(+0 + foo);
write(-0 + undefined);
write(-0 + null);
write(-0 + true);
write(-0 + false);
write(-0 + Boolean(true));
write(-0 + Boolean(false));
write(-0 + new Boolean(true));
write(-0 + new Boolean(false));
write(-0 + NaN);
write(-0 + +0);
write(-0 + -0);
write(-0 + 0);
write(-0 + 0.0);
write(-0 + -0.0);
write(-0 + +0.0);
write(-0 + 1);
write(-0 + 10);
write(-0 + 10.0);
write(-0 + 10.1);
write(-0 + -1);
write(-0 + -10);
write(-0 + -10.0);
write(-0 + -10.1);
write(-0 + Number.MAX_VALUE);
write(-0 + Number.MIN_VALUE);
write(-0 + Number.NaN);
write(-0 + Number.POSITIVE_INFINITY);
write(-0 + Number.NEGATIVE_INFINITY);
write(-0 + new Number(NaN));
write(-0 + new Number(+0));
write(-0 + new Number(-0));
write(-0 + new Number(0));
write(-0 + new Number(0.0));
write(-0 + new Number(-0.0));
write(-0 + new Number(+0.0));
write(-0 + new Number(1));
write(-0 + new Number(10));
write(-0 + new Number(10.0));
write(-0 + new Number(10.1));
write(-0 + new Number(-1));
write(-0 + new Number(-10));
write(-0 + new Number(-10.0));
write(-0 + new Number(-10.1));
write(-0 + new Number(Number.MAX_VALUE));
write(-0 + new Number(Number.MIN_VALUE));
write(-0 + new Number(Number.NaN));
write(-0 + new Number(Number.POSITIVE_INFINITY));
write(-0 + new Number(Number.NEGATIVE_INFINITY));
write(-0 + '');
write(-0 + 0xa);
write(-0 + 04);
write(-0 + 'hello');
write(-0 + 'hel' + 'lo');
write(-0 + String(''));
write(-0 + String('hello'));
write(-0 + String('h' + 'ello'));
write(-0 + new String(''));
write(-0 + new String('hello'));
write(-0 + new String('he' + 'llo'));
write(-0 + new Object());
write(-0 + new Object());
write(-0 + [1, 2, 3]);
write(-0 + [1 ,2 , 3]);
write(-0 + new Array(3));
write(-0 + Array(3));
write(-0 + new Array(1 ,2 ,3));
write(-0 + Array(1));
write(-0 + foo);
write(0 + undefined);
write(0 + null);
write(0 + true);
write(0 + false);
write(0 + Boolean(true));
write(0 + Boolean(false));
write(0 + new Boolean(true));
write(0 + new Boolean(false));
write(0 + NaN);
write(0 + +0);
write(0 + -0);
write(0 + 0);
write(0 + 0.0);
write(0 + -0.0);
write(0 + +0.0);
write(0 + 1);
write(0 + 10);
write(0 + 10.0);
write(0 + 10.1);
write(0 + -1);
write(0 + -10);
write(0 + -10.0);
write(0 + -10.1);
write(0 + Number.MAX_VALUE);
write(0 + Number.MIN_VALUE);
write(0 + Number.NaN);
write(0 + Number.POSITIVE_INFINITY);
write(0 + Number.NEGATIVE_INFINITY);
write(0 + new Number(NaN));
write(0 + new Number(+0));
write(0 + new Number(-0));
write(0 + new Number(0));
write(0 + new Number(0.0));
write(0 + new Number(-0.0));
write(0 + new Number(+0.0));
write(0 + new Number(1));
write(0 + new Number(10));
write(0 + new Number(10.0));
write(0 + new Number(10.1));
write(0 + new Number(-1));
write(0 + new Number(-10));
write(0 + new Number(-10.0));
write(0 + new Number(-10.1));
write(0 + new Number(Number.MAX_VALUE));
write(0 + new Number(Number.MIN_VALUE));
write(0 + new Number(Number.NaN));
write(0 + new Number(Number.POSITIVE_INFINITY));
write(0 + new Number(Number.NEGATIVE_INFINITY));
write(0 + '');
write(0 + 0xa);
write(0 + 04);
write(0 + 'hello');
write(0 + 'hel' + 'lo');
write(0 + String(''));
write(0 + String('hello'));
write(0 + String('h' + 'ello'));
write(0 + new String(''));
write(0 + new String('hello'));
write(0 + new String('he' + 'llo'));
write(0 + new Object());
write(0 + new Object());
write(0 + [1, 2, 3]);
write(0 + [1 ,2 , 3]);
write(0 + new Array(3));
write(0 + Array(3));
write(0 + new Array(1 ,2 ,3));
write(0 + Array(1));
write(0 + foo);
write(0.0 + undefined);
write(0.0 + null);
write(0.0 + true);
write(0.0 + false);
write(0.0 + Boolean(true));
write(0.0 + Boolean(false));
write(0.0 + new Boolean(true));
write(0.0 + new Boolean(false));
write(0.0 + NaN);
write(0.0 + +0);
write(0.0 + -0);
write(0.0 + 0);
write(0.0 + 0.0);
write(0.0 + -0.0);
write(0.0 + +0.0);
write(0.0 + 1);
write(0.0 + 10);
write(0.0 + 10.0);
write(0.0 + 10.1);
write(0.0 + -1);
write(0.0 + -10);
write(0.0 + -10.0);
write(0.0 + -10.1);
write(0.0 + Number.MAX_VALUE);
write(0.0 + Number.MIN_VALUE);
write(0.0 + Number.NaN);
write(0.0 + Number.POSITIVE_INFINITY);
write(0.0 + Number.NEGATIVE_INFINITY);
write(0.0 + new Number(NaN));
write(0.0 + new Number(+0));
write(0.0 + new Number(-0));
write(0.0 + new Number(0));
write(0.0 + new Number(0.0));
write(0.0 + new Number(-0.0));
write(0.0 + new Number(+0.0));
write(0.0 + new Number(1));
write(0.0 + new Number(10));
write(0.0 + new Number(10.0));
write(0.0 + new Number(10.1));
write(0.0 + new Number(-1));
write(0.0 + new Number(-10));
write(0.0 + new Number(-10.0));
write(0.0 + new Number(-10.1));
write(0.0 + new Number(Number.MAX_VALUE));
write(0.0 + new Number(Number.MIN_VALUE));
write(0.0 + new Number(Number.NaN));
write(0.0 + new Number(Number.POSITIVE_INFINITY));
write(0.0 + new Number(Number.NEGATIVE_INFINITY));
write(0.0 + '');
write(0.0 + 0xa);
write(0.0 + 04);
write(0.0 + 'hello');
write(0.0 + 'hel' + 'lo');
write(0.0 + String(''));
write(0.0 + String('hello'));
write(0.0 + String('h' + 'ello'));
write(0.0 + new String(''));
write(0.0 + new String('hello'));
write(0.0 + new String('he' + 'llo'));
write(0.0 + new Object());
write(0.0 + new Object());
write(0.0 + [1, 2, 3]);
write(0.0 + [1 ,2 , 3]);
write(0.0 + new Array(3));
write(0.0 + Array(3));
write(0.0 + new Array(1 ,2 ,3));
write(0.0 + Array(1));
write(0.0 + foo);
write(-0.0 + undefined);
write(-0.0 + null);
write(-0.0 + true);
write(-0.0 + false);
write(-0.0 + Boolean(true));
write(-0.0 + Boolean(false));
write(-0.0 + new Boolean(true));
write(-0.0 + new Boolean(false));
write(-0.0 + NaN);
write(-0.0 + +0);
write(-0.0 + -0);
write(-0.0 + 0);
write(-0.0 + 0.0);
write(-0.0 + -0.0);
write(-0.0 + +0.0);
write(-0.0 + 1);
write(-0.0 + 10);
write(-0.0 + 10.0);
write(-0.0 + 10.1);
write(-0.0 + -1);
write(-0.0 + -10);
write(-0.0 + -10.0);
write(-0.0 + -10.1);
write(-0.0 + Number.MAX_VALUE);
write(-0.0 + Number.MIN_VALUE);
write(-0.0 + Number.NaN);
write(-0.0 + Number.POSITIVE_INFINITY);
write(-0.0 + Number.NEGATIVE_INFINITY);
write(-0.0 + new Number(NaN));
write(-0.0 + new Number(+0));
write(-0.0 + new Number(-0));
write(-0.0 + new Number(0));
write(-0.0 + new Number(0.0));
write(-0.0 + new Number(-0.0));
write(-0.0 + new Number(+0.0));
write(-0.0 + new Number(1));
write(-0.0 + new Number(10));
write(-0.0 + new Number(10.0));
write(-0.0 + new Number(10.1));
write(-0.0 + new Number(-1));
write(-0.0 + new Number(-10));
write(-0.0 + new Number(-10.0));
write(-0.0 + new Number(-10.1));
write(-0.0 + new Number(Number.MAX_VALUE));
write(-0.0 + new Number(Number.MIN_VALUE));
write(-0.0 + new Number(Number.NaN));
write(-0.0 + new Number(Number.POSITIVE_INFINITY));
write(-0.0 + new Number(Number.NEGATIVE_INFINITY));
write(-0.0 + '');
write(-0.0 + 0xa);
write(-0.0 + 04);
write(-0.0 + 'hello');
write(-0.0 + 'hel' + 'lo');
write(-0.0 + String(''));
write(-0.0 + String('hello'));
write(-0.0 + String('h' + 'ello'));
write(-0.0 + new String(''));
write(-0.0 + new String('hello'));
write(-0.0 + new String('he' + 'llo'));
write(-0.0 + new Object());
write(-0.0 + new Object());
write(-0.0 + [1, 2, 3]);
write(-0.0 + [1 ,2 , 3]);
write(-0.0 + new Array(3));
write(-0.0 + Array(3));
write(-0.0 + new Array(1 ,2 ,3));
write(-0.0 + Array(1));
write(-0.0 + foo);
write(+0.0 + undefined);
write(+0.0 + null);
write(+0.0 + true);
write(+0.0 + false);
write(+0.0 + Boolean(true));
write(+0.0 + Boolean(false));
write(+0.0 + new Boolean(true));
write(+0.0 + new Boolean(false));
write(+0.0 + NaN);
write(+0.0 + +0);
write(+0.0 + -0);
write(+0.0 + 0);
write(+0.0 + 0.0);
write(+0.0 + -0.0);
write(+0.0 + +0.0);
write(+0.0 + 1);
write(+0.0 + 10);
write(+0.0 + 10.0);
write(+0.0 + 10.1);
write(+0.0 + -1);
write(+0.0 + -10);
write(+0.0 + -10.0);
write(+0.0 + -10.1);
write(+0.0 + Number.MAX_VALUE);
write(+0.0 + Number.MIN_VALUE);
write(+0.0 + Number.NaN);
write(+0.0 + Number.POSITIVE_INFINITY);
write(+0.0 + Number.NEGATIVE_INFINITY);
write(+0.0 + new Number(NaN));
write(+0.0 + new Number(+0));
write(+0.0 + new Number(-0));
write(+0.0 + new Number(0));
write(+0.0 + new Number(0.0));
write(+0.0 + new Number(-0.0));
write(+0.0 + new Number(+0.0));
write(+0.0 + new Number(1));
write(+0.0 + new Number(10));
write(+0.0 + new Number(10.0));
write(+0.0 + new Number(10.1));
write(+0.0 + new Number(-1));
write(+0.0 + new Number(-10));
write(+0.0 + new Number(-10.0));
write(+0.0 + new Number(-10.1));
write(+0.0 + new Number(Number.MAX_VALUE));
write(+0.0 + new Number(Number.MIN_VALUE));
write(+0.0 + new Number(Number.NaN));
write(+0.0 + new Number(Number.POSITIVE_INFINITY));
write(+0.0 + new Number(Number.NEGATIVE_INFINITY));
